import Cookie from "js-cookie"
import Router from 'vue-router'
export default {
  state:{
    isCollapse:false,  //控制菜单展开还是收起
    tableList:[//面包屑的数据
      {
        path:'/',
        menuName:'首页',
        icon:'s-home',
        url:'/home'
      }
    ],
    tagList:[//标签的数据
      {
        path:'/',
        menuName:'首页',
        icon:'s-home',
        url:'/home'
      }
    ],
    menu: []
  },
  mutations:{
    //state是固定写法，意思是获取当前的state对象，就是上面的那个
    //修改菜单展开收起的方法
    collapseMenu(state){
      state.isCollapse=!state.isCollapse;
    },
    //更新面包屑数据
    selectMenu: function (state, val) {
      //console.log(val);
      //判断添加的数据是否为首页
      if (val.url != "/home") {
        //如果v.name有与之相匹配的name则会返回索引，否则返回-1
        const index = state.tableList.findIndex(item => item.menuName === val.menuName);
        //如果tableList中不存在
        if (index === -1) {
          if (val.parentId != 0) {
            const menuArray=JSON.parse(sessionStorage.getItem("menu")) || state.menu;
            menuArray.forEach(item=>{
              if (val.parentId==item.menuId){
                if (state.tableList.length > 1) {
                  state.tableList.pop();
                  state.tableList.pop();
                }
                state.tableList.push(item);
                state.tableList.push(val);
              }
            });
          }else{
            if (state.tableList.length > 1) {
              state.tableList.pop();
            }
            state.tableList.push(val);
          }
        }
      }else{//如果点击的是首页
        state.tableList=[];
        state.tableList.push(val);
      }
    },
    //更新标签数据
    selectTag: function (state, val){
      //console.log(val);
      if (val.url != "/home") {
        //如果v.name有与之相匹配的name则会返回索引，否则返回-1
        const index = state.tagList.findIndex(item => item.menuName === val.menuName);
        //如果tagList中不存在
        if (index === -1) {
          state.tagList.push(val);
        }
      }
    },
    //删除指定的tag数据
    closeTag(state,item){
      //删除标签
      const index=state.tagList.findIndex(val =>val.menuName===item.menuName );
      state.tagList.splice(index,1);
    },
    //设置menu数据
    setMenu(state,val){
      state.menu=val;
      //cookie只能存放字符串，所以要将其转为json
      //sessionStorage.setItem('store', JSON.stringify(this.$store.state))
      sessionStorage.setItem("menu",JSON.stringify(val));
      //Cookie.set("menu",JSON.stringify(val));
    }
  }
}
